package cn.edu.ujn.springboot.controller;

import cn.edu.ujn.dao.PaymentInfo;
import cn.edu.ujn.service.IPaymentInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@CrossOrigin
public class PaymentInfoController {

    @Autowired
    private IPaymentInfoService paymentInfoService;

    // 添加支付记录
    @PostMapping("/payment")
    public String addPayment(@RequestBody PaymentInfo paymentRequest) {
        try {
            int result = paymentInfoService.addPayment(paymentRequest); // 调用服务方法添加支付
            return result > 0 ? "支付记录添加成功!" : "支付记录添加失败!";
        } catch (Exception e) {
            e.printStackTrace(); // 打印异常堆栈，便于服务器调试
            // 返回友好的错误信息，而不是完整的异常信息
            return "支付记录添加失败! 请检查输入信息。";
        }
    }


    // 修改支付记录
    @PutMapping("/payment/{paymentId}") // 映射到 /payment/{paymentId}
    public String modifyPayment(@PathVariable int paymentId, @RequestBody PaymentInfo paymentRequest) {
        paymentRequest.setPaymentId(paymentId); // 设置支付记录 ID
        int result = paymentInfoService.updatePayment(paymentRequest); // 调用服务方法更新支付
        return result > 0 ? "支付记录修改成功!" : "支付记录修改失败!";
    }

    // 删除支付记录
    @DeleteMapping("/payment/{paymentId}") // 映射到 /payment/{paymentId}
    public String removePayment(@PathVariable int paymentId) {
        int result = paymentInfoService.deletePayment(paymentId); // 调用服务方法删除支付
        return result > 0 ? "支付记录删除成功!" : "支付记录删除失败!";
    }

    // 根据 ID 获取支付记录
    @GetMapping("/payment/{paymentId}") // 映射到 /payment/{paymentId}
    public PaymentInfo getPaymentById(@PathVariable int paymentId) {
        return paymentInfoService.getPaymentById(paymentId); // 调用服务方法获取支付信息
    }

    // 获取所有支付记录
    @GetMapping("/payment/all")
    public List<PaymentInfo> getAllPayments() {
        return paymentInfoService.getAllPayments(); // 调用服务方法获取所有支付记录
    }
}
